package com.xhermit.learn.footprint.jvm;

/**
 *  Volatile关键字测试
 *  《深入理解Java虚拟机》
 * @version 3.0
 * @author FangJun
 * @date 2017年3月17日
 */
public class VolatileTest {

	private   static  volatile int COUNT= 0;
	 
	private  static  void incr(){
		COUNT++;
	}
 
	public static void main(String[] args) {
		int THREAD_NUM=20;
		for(int i=0;i<THREAD_NUM;i++){
		  Thread t=	new Thread(){
				public void run() {
					for(int j=0;j<10000;j++){
						 incr();
					}
				}
				
			};
			t.start();
		}
//		while(Thread.activeCount()>1){
//			Thread.yield();
//		}
//		System.out.println(COUNT);
		
		Runtime.getRuntime().addShutdownHook(new Thread(){

			/* (non-Javadoc)
			 * @see java.lang.Thread#run()
			 */
			@Override
			public void run() {
				System.out.println(COUNT);
			}
			
		});
	}

}
